Computing devices, such as notebook computers, personal data assistants (PDAs), and mobile handsets, have user interface devices, which are also known as human interface device (HID). One user interface device that has become more common is a touch-sensor pad. A basic notebook touch-sensor pad emulates the function of a personal computer (PC) mouse A touch-sensor pad is typically embedded into a PC notebook for built-in portability. A touch-sensor pad replicates mouse x/y movement by using two defined axes which contain a collection of sensor elements that detect the position of a conductive object, such as finger. Mouse right/left button clicks can be replicated by two mechanical buttons, located in the vicinity of the touchpad, or by tapping commands on the touch-sensor pad itself. The touch-sensor pad provides a user interface device for performing such functions as positioning a cursor, or selecting an item on a display. These touch-sensor pads can include multi-dimensional sensor arrays. The sensor array may be one dimensional, detecting movement in one axis. The sensor array may also be two dimensional, detecting movements in two axes.
FIG. 1A illustrates a conventional touch-sensor pad. The touch-sensor pad 100 includes a sensing surface 101 on which a conductive object may be used to position a cursor in the x- and y-axes. Touch-sensor pad 100 may also include two buttons, left and right buttons 102 and 103, respectively. These buttons are typically mechanical buttons, and operate much like a left and right button on a mouse. These buttons permit a user to select items on a display or send other commands to the computing device.
FIG. 1B illustrates a conventional touch-sensor pad. The touch-sensor pad 100 includes a plurality of metal strips 104(1)-104(N), where N is the number of strips. The plurality of metal strips 104(1)-104(N) are coupled to the processing device 105, including a plurality of capacitance sensors 103(1)-103(N). The plurality of metal strips 104(1)-104(N) are configured to determine the location or position of the conductive object 106. For ease of discussion and illustration, only the N parallel running metal strips in only the Y direction (e.g., to detect motion in the x-direction) of the touch-sensor pad 100 have been included. In this conventional design, each capacitance sensor 103 is coupled to a corresponding metal strip 104. In other words, for each sensor element 104, the processing device 105 has a corresponding pin to connect each strip of the touch-sensor pad to the processing device 105. Accordingly, this conventional design uses linear search algorithms to determine the position of the conductive object 106 on the plurality of metal strips. With a linear search algorithm, capacitance variation is detected one by one in a linear fashion. By comparing the capacitance variation between the baseline and the capacitance variation on neighboring metal strips, the position of the conductive object 106 (e.g., X coordinate) is determined. For example, the processing device 103(1) may first detect the capacitance variation on the first metal strip 104(1), then 104(2), and so on, until in detects the conductive object on the seventh metal strip 104(7). If the conductive object is on the first metal strip 104(1), then the processing device 105 only takes one cycle to detect the conductive object 106. If the conductive object is on the Nth metal strip 104(N), then the processing device 105 takes N cycles to detect the conductive object 106. Accordingly, the processing device 105 takes, on average, (N+1)/2 to locate the contacting point of the conductive object 106 with this linear searching algorithm.
In conventional touch-sensor pads using a PS/2 interface, the scan rate or speed at which the touch-sensor pad locates the position of the contact point of the conductive object on the touch-sensor pad is 30 milliseconds (ms) (e.g., to complete one scan). However, the minimum sample rate of PS/2 may be 10-12.5 ms. For example, in the stream mode of the PS/2 protocol, the user interface sends movement data when it detects movement or a change in state of one or more buttons. The maximum rate at which this data reporting may occur is known as the sample rate. This parameter ranges from 10 samples/sec to 200 samples/sec. The default value for the sample rate is 100 samples/sec and the host may change that value. Conventional computers will set the sample rate to 80 samples/sec or 100 samples/sec, resulting in minimum sampling times of 12.5 ms and 10 ms, respectively. Accordingly, a user will notice the position “jumps” in the cursor with scan speeds slower than the minimum sample rate. Further, the slower scan speed in the sample rate of the interface may bottleneck data communication between the user interface device and the host.